﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestionaleLib.Controller;
using GestionaleLib;
using Leaf.View.Magazzino;

namespace Leaf.View.Magazzino
{
    public partial class frmElencoMagazzino : Form
    {
        private GestionaleLib.Magazzino Selezione;

        public frmElencoMagazzino()
        {
            InitializeComponent();
            CaricaCombo();
        }
        private void CaricaCombo()
        {
            List<Prodotto> ListaProdotti = new ctrlProdotti().Seleziona();
            if (ListaProdotti!=null)
            {
                foreach (Prodotto item in ListaProdotti)
                {
                    cmbProdotti.Items.Add((Prodotto)item);
                }
            }
            cmbProdotti.SelectedIndex = -1;
        }
        public void Aggiorna()
        {
            Ricerca();
            Disponibilita();
        }
        private void Elenco()
        {
            Grid.DataSource = null;
            Grid.DataSource = new ctrlMagazzino().Seleziona();
            FormattaGriglia();
        }
        private void Disponibilita()
        {
            lblDisponibilitaProdotto.Text = "" + new ctrlMagazzino().Disponibilita((Prodotto)cmbProdotti.SelectedItem)+ " in magazzino";
        }
        private void Ricerca()
        {
            if (cmbProdotti.Items.Count > 0)
            {
                Grid.DataSource = null;
                Grid.DataSource = new ctrlMagazzino().Seleziona(((Prodotto)cmbProdotti.SelectedItem).Id);
                FormattaGriglia();
            }
        }
        private void FormattaGriglia()
        {
            if (Grid.Rows.Count > 0)
            {
                Grid.Columns["Id"].Visible = false;
            }
        }
        private void cmdDisponibilitaMagazzino_Click(object sender, EventArgs e)
        {
            if (Selezione != null)
            {
                frmSchedaProdotto frm = new frmSchedaProdotto(Selezione.Prodotto);
                frm.MdiParent = this.MdiParent;
                frm.Show();
            }
        }
        private void cmdCarica_Click(object sender, EventArgs e)
        {
            if (Selezione != null)
            {
                frmMovimentaProdotto frm = new frmMovimentaProdotto(Selezione.Prodotto, 
                    ctrlMagazzino.Causale.CA,this);
                frm.MdiParent = this.MdiParent;
                frm.Show();
            }
        }
        private void cmdScarica_Click(object sender, EventArgs e)
        {
            if (Selezione != null)
            {
                frmMovimentaProdotto frm = new frmMovimentaProdotto(Selezione.Prodotto,
                    ctrlMagazzino.Causale.SC,this);
                frm.MdiParent = this.MdiParent;
                frm.Show();
            }
        }
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            Ricerca();
        }
        private void AbilitaControlli(bool stato)
        {
            switch (stato)
            {
                case true:
                    cmdCarica.Enabled = true;
                    cmdScarica.Enabled = true;
                    cmdDisponibilitaMagazzino.Enabled = true;
                    break;
                case false:
                    cmdCarica.Enabled = false;
                    cmdScarica.Enabled = false;
                    cmdDisponibilitaMagazzino.Enabled = false;
                    break;
            }
        }
        private void Grid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (Grid.DataSource != null &&
                Grid.Rows.Count > 0)
            {
                Selezione = (GestionaleLib.Magazzino)Grid.SelectedRows[0].DataBoundItem;
                AbilitaControlli(true);
            }
            else
            {
                AbilitaControlli(false);
            }
        }
        private void cmbProdotti_SelectedIndexChanged(object sender, EventArgs e)
        {
            Ricerca();
            Disponibilita();
        }

        private void cmbProdotti_Click(object sender, EventArgs e)
        {

        }
    }
}
